home *** CD-ROM | disk | FTP | other *** search
Java Source | 2003-04-29 | 5.8 KB | 179 lines |
- package com.jproxy.samples.ejb.test;
-
- /**
- * The class is a client for TestSession EJB example.
- * The request current time from server and prints it.
- * The class may be used as an Applet or stand-alone application.
- */
-
- /*
- Here are some usage examples.
- You have to correct paths for your environment.
-
- For HTTPS test
- -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol \
- -Djavax.net.ssl.trustStore=your_keystore \
- -Djavax.net.ssl.trustStorePassword=123456 \
- -Djavax.net.debug=all \
-
- For EJB security test add to command line
- -Djava.naming.security.principal=admin \
- -Djava.naming.security.credentials=123 \
-
- 1. Any EJB Server with JProxy and EJB security:
- %JAVA_HOME%\bin\java -cp samples.jar;proxyclient.jar;j2api.jar \
- -Djava.naming.factory.initial=com.jproxy.proxy.NamingContextFactory \
- -Djava.naming.provider.url=localhost:8080 \
- com.jproxy.samples.ejb.test.SessionClient
-
- ...And below you can see how many libraries needed to run the Client without JProxy!
-
- 2. JBoss 3.0 without JProxy:
- %JAVA_HOME%\bin\java
- -cp samples.jar;%LIB_PATH%/jboss-j2ee.jar;%LIB_PATH%/jboss-client.jar;\
- %LIB_PATH%/jnp-client.jar;%LIB_PATH%/jbosssx-client.jar;\
- %LIB_PATH%/jboss-common-client.jar;%LIB_PATH%/log4j.jar \
- -Djava.naming.factory.initial=org.jnp.interfaces.NamingContextFactory \
- -Djava.naming.provider.url=localhost \
- com.jproxy.samples.ejb.test.SessionClient
-
- 3. Orion without JProxy:
- %JAVA_HOME%\bin\java
- -cp samples.jar;proxyclient.jar;j2api.jar;%LIB_PATH%/orion.jar;%LIB_PATH%/jaas.jar;
- %LIB_PATH%/crimson.jar;%LIB_PATH%/jaxp.jar;%LIB_PATH%/jta.jar;%LIB_PATH%/jdbc.jar \
- -Djava.naming.factory.initial=com.evermind.server.ApplicationClientInitialContextFactory \
- -Djava.naming.provider.url=ormi://localhost/proxy \
- com.jproxy.samples.ejb.test.SessionClient
- */
-
- import javax.naming.*;
- import java.applet.*;
- import java.util.*;
-
- import com.jproxy.proxy.*;
- import com.jproxy.samples.interfaces.ITest;
-
- public class SessionClient
- {
- public String hostUrl = "localhost";
- public ISession session = null;
- public InitialContext context = null;
- public Properties env = new Properties();
- public boolean isInitialized = false;
-
- long time = 0;
-
- //Construct the applet
- public SessionClient()
- {
- }
-
- //Initialize the applet
- public void init()
- throws Exception
- {
- hostUrl = env.getProperty(Context.PROVIDER_URL);
-
- if(hostUrl!=null && hostUrl.toLowerCase().startsWith("https://"))
- {
- // java.security.Provider provider = new com.sun.net.ssl.internal.ssl.Provider();
- java.security.Provider provider = (java.security.Provider)Class.forName("com.sun.net.ssl.internal.ssl.Provider").newInstance();
- java.security.Security.addProvider(provider);
- // Uncomment if you want to implement your HostnameVerifier for HTTPS
- /* com.sun.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
- new com.sun.net.ssl.HostnameVerifier()
- {
- public boolean verify(String urlHostname, String certHostname)
- {
- System.out.println("####### urlHostname: "+urlHostname+" certHostname: "+certHostname);
- return urlHostname.equals(certHostname);
- }
- }
- );
- */
- }
-
- // JBoss without JProxy
- // env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
- // env.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
-
- // command line:
- // java -cp samples.jar;proxyclient.jar;ejb.jar com.jproxy.samples.ejb.test.SessionClient [http | https://]YourServer[:Port]
-
- // Orion with JProxy
- // env.put(com.jproxy.proxy.Tunnel.INITIAL_CONTEXT_FACTORY, "com.evermind.server.ApplicationClientInitialContextFactory");
- // or
- // env.put(com.jproxy.proxy.Tunnel.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.providers.OrionNamingContextFactory");
- // env.put(com.jproxy.proxy.Tunnel.PROVIDER_URL, "ormi://localhost/proxy");
- // env.put("dedicated.connection", "true");
-
- // Orion without JProxy
- // env.put(Context.INITIAL_CONTEXT_FACTORY, "com.evermind.server.ApplicationClientInitialContextFactory");
- // or
- // env.put(Context.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.providers.OrionNamingContextFactory");
- // env.put(Context.PROVIDER_URL, "ormi://localhost/proxy");
- // command line:
- // java -cp jdbc.jar;jta.jar;crimson.jar;jaxp.jar;parser.jar;orion.jar;jaas.jar;samples.jar;proxyclient.jar;ejb.jar com.jproxy.samples.ejb.test.SessionClient ormi://YourServer/proxy
-
- // For security test
- // env.put(Context.SECURITY_PRINCIPAL, "admin");
- // env.put(Context.SECURITY_CREDENTIALS, "123");
-
- context = new InitialContext(env);
-
- ISessionHome sessionHome = (ISessionHome)context.lookup("TestSessionBean");
-
- context.close();
- // or
- // ISessionHome sessionHome = (ISessionHome)context.lookup("java:comp/env/TestSessionBean");
- session = sessionHome.create();
- isInitialized = true;
- }
-
-
- public void test()
- throws Exception
- {
- time = session.getServerTime();
-
- // uncomment to execute simple performance test
- // long t = System.currentTimeMillis();
- // for(int i=0; i<1000; i++)
- // time = session.getServerTime();
- // System.out.println("Execution time: "+(System.currentTimeMillis()-t)/1000.0+" seconds");
-
- System.out.println("\r\n<<<<<< Server Time: "+(new Date(time))+" >>>>>\r\n");
- }
-
- public void destroy()
- {
- isInitialized = false;
- try{
- session.remove();
- }catch(Exception e){
- // e.printStackTrace();
- }
- }
-
-
- public static void main(String[] args)
- {
- SessionClient client = new SessionClient();
- client.env = System.getProperties();
-
- if(client.env.getProperty(Context.PROVIDER_URL)==null)
- client.env.setProperty(Context.PROVIDER_URL, "localhost");
-
- if(client.env.getProperty(Context.INITIAL_CONTEXT_FACTORY)==null)
- client.env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.jproxy.proxy.NamingContextFactory");
-
- try{
- client.init();
- client.test();
- client.destroy();
- }
- catch(Exception e){
- e.printStackTrace();
- }
- }
- }